package com.songlanyun.modules.applyareaagent.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.songlanyun.common.drive.IBaseService;
import com.songlanyun.common.utils.PageUtils;
import com.songlanyun.modules.applyareaagent.entity.ApplyAreaAgentCheckDTO;
import com.songlanyun.modules.applyareaagent.entity.ApplyAreaAgentDTO;
import com.songlanyun.modules.applyareaagent.entity.ApplyAreaAgentEntity;
import com.songlanyun.modules.applyareaagent.entity.SysUserForAreaAgentDTO;
import com.songlanyun.modules.shop.model.vo.ShopSlimVO;
import com.songlanyun.modules.user.entity.SysUserEntity;

import java.util.List;
import java.util.Map;

/**
 * 申请区域代理
 *
 * @author lubo
 * @email sunlightcs@gmail.com
 * @date 2022-09-29 14:33:03
 */
public interface ApplyAreaAgentService extends IBaseService<Long,ApplyAreaAgentEntity> {


    @Override
    PageUtils queryPage(Map<String, Object> params);

    void apply(Long userId, ApplyAreaAgentDTO dto);

    ApplyAreaAgentEntity loadBy(String provinceCode,String cityCode,String areaCode);

    ApplyAreaAgentEntity loadByUserId(Long userId);

    ApplyAreaAgentEntity check(ApplyAreaAgentCheckDTO dto);

    ApplyAreaAgentEntity loadById(Long id, boolean b);

    void assignedAccount(ApplyAreaAgentEntity areaAgent, SysUserForAreaAgentDTO user);

    PageUtils queryCustomPage(Map<String, Object> params);

    SysUserEntity getAdminById(Long id);

    List<ShopSlimVO> myOfflineShops(Long id);

    List<ShopSlimVO> myOnlineShops(Long areaAgentId);

    void setAreaAgentParams(Long areaAgentId, Map<String, Object> params);
    
	String getCodeByAreaAgentId(Long areaAgentId);
}

